/*
 * 产品品牌管理
 */
Ext.onReady(function() {
	Ext.lib.Ajax.defaultPostHeader += '; charset=utf-8';// 处理ie提交中文乱码问题
	var sm = new Ext.grid.CheckboxSelectionModel({
		handleMouseDown : Ext.emptyFn
	});
	var cm = new Ext.grid.ColumnModel([sm,  {
		header : "编号",
		dataIndex : 'typeno',
		editor : new Ext.form.TextField({
			allowBlank : false
		})
	}, {
		header : '名称',
		dataIndex : 'typename',
		width : 120,
		align : 'center',
		editor : new Ext.form.TextField({
			allowBlank : false
		})
	}, {
		header : '级别',
		dataIndex : 'grade',
		width : 120,
		align : 'center',
		editor : new Ext.form.NumberField({
			allowBlank : false
		})
	}]);
	cm.defaultSortable = true;

	var _Record = Ext.data.Record.create([{
		name : 'idtGoodstype'
	}, {
		name : 'typeno'
	}, {
		name : 'typename'
	}, {
		name : 'grade'
	}]);

	var store = new Ext.data.JsonStore({
		url : '../' + WebServiceUrl,
		baseParams : {
			trancode : '12140'
		},
		totalProperty : 'totalProperty',
		root : 'root',
		fields : _Record,
		pruneModifiedRecords : true
	});

	var grid = new Ext.grid.EditorGridPanel({
		store : store,
		cm : cm,
		renderTo : 'goodstype_grid',
		resizeable : true,
		height : Ext.get("goodstype_grid").getHeight(),
		bodyStyle:'width:100%',
		title : '产品品牌',
		//frame : true,
		clicksToEdit : 1,
		sm : sm,
		iconCls : 'icon-grid',
		loadMask : {
			msg : '正在加载数据，请稍候。。。'
		},
		stripeRows : true,
		tbar : [{// 添加按钮
			text : '添加',
			iconCls : 'add',
			handler : function() {
				var m = new _Record({
					typeno : '123',
					typename : '品牌',
					grade : '1'
				});
				grid.stopEditing();
				store.insert(0, m);
				grid.startEditing(0, 2);
				store.getAt(0).dirty = true; // 设置该行记录为脏数据(默认为非脏数据),否则在保存时将无法判断该行是否已修改
			}
		}, '-', {// 删除按钮
			id : 'btnDelete',
			text : '删除',
			iconCls : 'remove',
			handler : function() {
				var sm = grid.getSelectionModel();
				var selected = sm.getSelections();
				var ids = [];
				for (var i = 0; i < selected.length; i += 1) {
					var member = selected[i].data;
					if (member.idtGoodstype) {
						ids.push(member.idtGoodstype); // 如果有idtGoodstype属性,则表示该行数据是被修改过的,所以需要访问数据库进行删除
					} else {
						// 如果没有idtGoodstype属性,则表示该行数据是新添加的未保存的数据,所以不需要访问数据库进行删除该行
						store.remove(store.getAt(i));
					}
				}
				if (ids.join('') == '')
					return;
				Ext.Msg.confirm('信息', '确定要删除所选项吗?', function(btn) {
					if (btn == 'yes') {
						// 发送删除请求
						Ext.lib.Ajax.request('POST', '../' + WebServiceUrl, {
							success : function(result) {
								json = Ext.util.JSON
										.decode(result.responseText);
								if (json.success) {
									Ext.MessageBox.alert('操作成功', json.message);
								} else {
									Ext.MessageBox.alert('操作失败', json.message);
								}
								store.reload();
							}
						}, 'trancode=12144&id=' + ids);
					}
				});
			}
		}, '-', {// 保存按钮
			text : '保存',
			iconCls : 'save',
			handler : function() {
				var json = [];
				for (i = 0, cnt = store.getCount(); i < cnt; i += 1) {
					var record = store.getAt(i);
					if (record.dirty) // 得到所有修改过的数据
						json.push(record.data);
				}
				if (json.length == 0) {
					Ext.Msg.alert('信息', '没有对数据进行任何更改');
					return;
				}
				// 发送保存请求
				Ext.lib.Ajax.request('POST', '../' + WebServiceUrl, {
					success : function(result) {
						json = Ext.util.JSON.decode(result.responseText);
						if (json.success) {
							Ext.MessageBox.alert('操作成功', json.message);
						} else {
							Ext.MessageBox.alert('操作失败', json.message);
						}
						store.reload();
					}
				}, 'trancode=12143&json='
						+ encodeURIComponent(Ext.encode(json)));
			}
		}, '-'],
		bbar : new Ext.PagingToolbar({
			pageSize : App.pageSize,
			store : store,
			displayInfo : true,
			displayMsg : '显示第 {0} 条到 {1} 条记录，一共 {2} 条',
			emptyMsg : "没有记录"
		})

	});
	store.load({
		params : {
			start : 0,
			limit : App.pageSize
		}
	});
});
